package cn.dengta.webapp.user.vo.task;

import java.util.Map;

import cn.dengta.webapp.base.vo.AbstractVO;
import cn.dengta.webapp.user.entity.task.TaskAccountLog;
import cn.dengta.webapp.user.entity.task.TaskRule.TaskRuleType;
import lombok.Getter;
import lombok.Setter;

@Getter
@Setter
public class TaskAccountLogVO extends AbstractVO<TaskAccountLog> {

	/** 流向：1=收入；0=不变；-1=支出 */
	protected Integer flow;
	/** 业务类型 */
	protected Integer ruleType;
	/** 总钻石 */
	private Integer totalCoin;
	/** 可用钻石 */
	private Integer activeCoin;
	/** 冻结钻石 */
	private Integer frozenCoin;
	/** 改变钻石 */
	private Integer changeCoin;
	protected Map<String, Object> user;
	protected transient String remark;

	public static TaskAccountLogVO from(TaskAccountLog source) {
		final TaskAccountLogVO vo = copy(source, TaskAccountLogVO::new);
		if (vo != null) {
			vo.ruleType = source.getRuleType().ordinal();
		}
		return vo;
	}

	public String getRuleType_() {
		return ruleType != null ? TaskRuleType.of(ruleType).getLabel() : null;
	}

	public String getFlow_() {
		switch (flow) {
			case -1:
				return "支出";
			case 0:
				return "不变";
			case 1:
				return "收入";
		}
		return null;
	}

}
